import axios from "axios"
import qs from "qs"
import Vue from "vue"
import store from "../store/index.js"

//开发环境
if(process.env.NODE_ENV === "development"){
    Vue.prototype.$pre = "http://localhost:3000"
}
//生产环境
if(process.env.NODE_ENV === "production"){
    Vue.prototype.$pre = ""
}

//请求拦截器
axios.interceptors.request.use(config=>{

    if(config.url !== "/api/login"){
        config.headers.authorization = store.state.userInfo.token
    }
    return config
})
//响应拦截器
axios.interceptors.response.use(res=>{
    console.group("本次请求的路径是：" +res.config.url)
    console.log(res)
    console.groupEnd("拦截器结束")

    return res
})
/* 
  get请求
    url   请求地址
    params  请求参数，对象类型
*/
export const get = (url,params={})=>{
    return new Promise((resolve,erro)=>{
        axios.get(url,{
            params:params
        }).then(res=>{
            resolve(res)
        }).catch(err=>{
            erro(err)
        })
    })
}

/* 
  post请求
    url   请求地址
    params  请求参数，对象类型
    isFile   是否包含文件，如果包含文件就传true，如果不包含文件就不用传
*/
export const post = (url,params={},isFile=false)=>{

    let data = null
    if(isFile){
        //有文件模拟formdata
        data = new FormData()
        for(let i in params){
            data.append(i,params[i])
        }
    }else{
        data = qs.stringify(params)
    }
    
    return new Promise((resolve,error)=>{
        axios.post(url,data).then(res=>{
            resolve(res)
        }).catch(err=>{
            error(err)
        })
    })
}